package com.Ivy.tcpDemo;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class ClientThread extends Thread{
    private Socket socket;//属性

    public ClientThread(){
        super("客户端:");
    }
    //重写run方法
    @Override
    public void run() {
        try {
            //初始化客户端socket,第一个参数是服务器的主机名或者IP地址：localhost表示当前主机是服务器；
            //127.0.0.1 表示当前主机;具体的ip地址：比如：172.16.130.2;第二个参数：指定端口号
            Socket socket = new Socket("127.0.0.1", 9090);
            ////////////////////////////////////////发送消息//////////////////////////////////
            //获取socket的输出流对象
            BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            while (true) {
                Scanner sc = new Scanner(System.in);
                //输出内容到网络，发送服务器
                String strSendMsg = sc.next();
                bf.write(this.getName() + strSendMsg);
                System.out.println(Thread.currentThread().getName() + strSendMsg);
                //一般输出流将换行或者回车作为一行内容的结束，所以需要在发送之前输出一个换行符或者回车符表示一行内容结束
                //然后输出流将内容发送到网络给服务器
                bf.write("\n");
                bf.flush();
                ////////////////////////////////////////接收消息//////////////////////////////////
                //信息接收
                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                //读取服务器发送的消息
                String strSmg = br.readLine();
                System.out.println(strSmg);
            }
            }catch(IOException e){
            e.printStackTrace();
        }
    }
}
